The present invention generally relates to frequency error correction within radiocommunication systems and more particularly to correction of fixed errors arising in crystal oscillators that are used as a timing reference in remote units of radiocommunication systems.
A block diagram of an exemplary cellular mobile radiotelephone system, including an exemplary base station 110 and mobile station 120, is illustrated in FIG. 1. The base station includes a control and processing unit 130 which is connected to the MSC 140 which in turn is connected to the PSTN (not shown). General aspects of such cellular radiotelephone systems are known in the art, as described by U.S. Pat. No. 5,175,867 to Wejke et al. "Neighbor-Assisted Handoff in a Cellular Communications System," which is incorporated herein by reference.
The base station 110 handles a plurality of voice or data channels through a data channel transceiver 150, which is controlled by the control and processing unit 130. Also each base station includes a control channel receiver 160 which may be capable of handling more than one control channel. The control channel transceiver 160 is controlled by the control and processing unit 130. The control channel transceiver 160 broadcasts control information over the control channel of the base station or cell to mobiles locked to that control channel.
The mobile station 120 receives the information broadcast on a channel at its data and control channel transceiver 170. Then the processing unit 180 evaluates the received control channel information, which includes the characteristics of the cells that are candidates for the mobile station to lock onto, and determines on which cell the mobile should lock. Advantageously, the received control channel information not only includes absolute information concerning the cell with which it is associated, but also contains relative information concerning other cells proximate to the cell associated with the control channel.
In a time division multiple access (TDMA) cellular radiotelephone, each radio channel is divided into a series of time slots. Each slot contains a burst of information (e.g., a digitally encoded portion of a voice conversation) from a data source such as a base station. The time slots are grouped into successive TDMA frames each having a predetermined duration. The number of time slots in each TDMA frame is related to the number of different users that can simultaneously share the radio channel. If each slot in a TDMA frame is assigned to a different user, the duration of a TDMA frame is the minimum amount of time between successive time slots assigned to the same user.
TDMA cellular systems operate in a buffer-and-burst, or discontinuous-transmission mode where each mobile station transmits (and receives) only during its assigned time slots. For example, an actively connected mobile station might transmit during slot 1, receive during slot 2, be idle during slot 3, transmit during slot 4, receive during slot 5, and be idle during slot 6, and then repeat the cycle during succeeding TDMA frames. Accordingly, a mobile unit's timing during use is vital to efficient signal transmission.
Clocking devices currently employed within mobile stations are not as accurate as they need to be. There are two different types of errors which are attributed to inaccurate clocking within mobile stations. First, errors known as "fixed errors" are introduced to a crystal oscillator during manufacture, and give rise to a fixed deviation from a preset frequency of the crystal oscillator. Additionally, the fixed error of the crystal oscillator can by further augmented by other fixed errors introduced into system timing by individual components connected to the crystal oscillator.
Dynamic errors, caused by temperature variations in the environment in which the mobile telephone is located, are also introduced into crystal oscillators. Crystal oscillators inherently depend upon the temperature of the environment. The frequency of a crystal oscillator tends to increase or decrease from its preset frequency depending upon the specifications on the crystal. Also, as the crystal ages, the frequency at a given temperature decreases. The frequency of the crystal oscillator can also vary dynamically due to the amount of voltage across the crystal.
In an attempt to reduce the errors caused by inaccurate clocking within mobile phones, conventional systems use mechanical or electrical capacitive trimmers to reduce the error of the real time clock. Generally, in these systems, a variable or trimmer capacitor is placed into the voltage supply of a crystal oscillator. The capacitor can be adjusted until the oscillator oscillates at a desired or preset frequency. However, setting the capacitor requires additional expense and time which is not optimal with mobile phones.
Additionally, attempts at overcoming the problems of fixed and dynamic errors associated with crystal oscillators have also included hardware and/or software compensation that is calibrated to an external high accuracy reference. For example, one possible solution would be to have a real time clock that is referenced to a high accuracy clock based upon an external timing reference (e.g., a timing reference located in a base station) during use of the mobile telephone. However, this type of system calibrates the accuracy periodically (i.e., only when the system is powered on by a user) through the use of a high accuracy clock at a base station and can produce inaccurate reference signals, due to the Doppler Effect, as the distance between the base station and mobile phone varies.
Finally, individual test devices that can attach to the mobile phone have also been developed. For example, U.S. Pat. No. 5,481,507 describes an electric timekeeping device that generates an adjustable time-based signal in an effort to reduce the data that needs to be stored. Adjustment data, that is applied to an oscillator clock signal, is stored in a non-volatile memory. The adjustment data allows the time-based signal to be adjusted once per time-based cycle. However, a peak value or frequency error is determined and used to update the time based signal at every clock cycle. Additionally, the adjustment equipment, including an adjustment data calculator, is external to the mobile phone which does not allow for maximum efficiency.
The solutions described above do not provide an increase in accuracy without additional problems. As a result, a method and an associated apparatus to economically and efficiently increase the accuracy of mobile telephone units is needed.
In accordance with an exemplary embodiment of the present invention methods and apparatuses for calibrating and correcting inaccuracies in a real time clock are provided.
In one aspect of the invention, a real time clock signal is generated by generating a high frequency clock signal; generating a low frequency clock signal from the high frequency clock signal; generating a corrected low frequency clock signal by adjusting a frequency of the low frequency clock signal once out of every Count.sub.Adjust assertions of the low frequency clock signal, wherein Count.sub.Adjust is an integer greater than one; and supplying the corrected low frequency clock signal as the real time clock signal.
In accordance with another aspect of the invention, the step of generating the corrected low frequency clock signal comprises the steps of counting assertions of the low frequency clock signal, thereby generating a present count value; comparing the present count value with the Count.sub.Adjust ; and adjusting the frequency of the low frequency clock signal in response to the present count value being equal to the Count.sub.Adjust.
In yet another aspect of the invention, generating the low frequency clock signal from the high frequency clock signal comprises using a frequency divider to generate one assertion of the low frequency clock signal for every N assertions of the high frequency clock signal, wherein N is an integer greater than one. Furthermore, adjusting the frequency of the low frequency clock signal comprises adjusting N by an amount r, wherein r is an integer having a magnitude greater than or equal to one.
The high frequency clock signal may be generated from a higher frequency clock signal by using a second frequency divider to generate one assertion of the high frequency clock signal for every M assertions of the higher frequency clock signal, wherein M is an integer greater than one.
In yet another aspect of the invention, a value for Count.sub.Adjust is generated by performing a calibration process that includes the steps of counting assertions of a first oscillator signal from which the high frequency clock signal is derived; simultaneously counting assertions of a reference oscillator signal; determining a measured count value representing a number of assertions of the reference oscillator signal that occurred for a predetermined number of assertions of the first oscillator signal; generating an error count value by comparing the measured count value with an expected count value; and converting the error count value to the Count.sub.Adjust.
In still another aspect of the invention, the step of converting the error count value to the Count.sub.Adjust comprises the step of computing: ##EQU1##
wherein:
N is an integer that represents a ratio of frequencies of the high frequency clock signal and the low frequency clock signal; PA1 T.sub.measured is a nominal interval of time required for the first oscillator signal to be asserted the predetermined number of times; PA1 r is an integer amount by which N will be adjusted once out of every Count.sub.Adjust assertions of the low frequency clock; PA1 f.sub.ref is a nominal frequency of the reference oscillator signal; and PA1 COUNT.sub.measured is the measured count value.
When employed in an apparatus that may not always have power supplied to the real time clock, such as a mobile telephone, the value Count.sub.Adjust may be stored in a nonvolatile memory for use during operation of the apparatus.